/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package xmibase;

/**
 *
 * @author Felipe Gutierrez
 */


import java.util.ArrayList;
import java.util.List;

public class XmiClass {
	private String id;
	private String name;
	private String packageName;
       
        




	private boolean isAbstract;
	private String visibility;
	private boolean isSpecification;
	private boolean isRoot;
	private boolean isLeaf;
	private boolean isActive;

	private boolean hasSuperClass;
	private XmiClass superClass;
	private ArrayList<XmiAbstraction> abstractions;
	private boolean hasInterface;
	private ArrayList<XmiInterface> interfaces;

	private ArrayList<XmiAttribute> attributes;
	private ArrayList<XmiDataType> dataTypes;
	private ArrayList<XmiAttribute> associatesAttributes;
	private ArrayList<XmiTagDefinition> tagsDefenition;
	private ArrayList<XmiTagValue> tagsValue;
    public static ArrayList<String> pkgName;




	public ArrayList<XmiAttribute> getAssociatesAttributes() {
		return associatesAttributes;
	}

	public void setAssociatesAttributes(ArrayList<XmiAttribute> associatesAttributes) {
		this.associatesAttributes = associatesAttributes;
	}

	private XmiGeneralization generalization;

	public XmiClass() {
		this.hasSuperClass = false;
		this.interfaces = new ArrayList<XmiInterface>();
		this.tagsValue = new ArrayList<XmiTagValue>();
		this.attributes = new ArrayList<XmiAttribute>();
		this.dataTypes = new ArrayList<XmiDataType>();
		this.associatesAttributes = new ArrayList<XmiAttribute>();
		this.tagsDefenition = new ArrayList<XmiTagDefinition>();
		this.abstractions = new ArrayList<XmiAbstraction>();

	}

	public void addInterface(XmiInterface xmiInterface) {
		this.interfaces.add(xmiInterface);
	}

	public boolean isAbstract() {
		return isAbstract;
	}

	public void setAbstract(boolean isAbstract) {
		this.isAbstract = isAbstract;
	}

	public String getVisibility() {
		return visibility;
	}

	public void setVisibility(String visibility) {
		this.visibility = visibility;
	}

	public boolean isSpecification() {
		return isSpecification;
	}

	public void setSpecification(boolean isSpecification) {
		this.isSpecification = isSpecification;
	}




	public boolean isRoot() {
		return isRoot;
	}

	public void setRoot(boolean isRoot) {
		this.isRoot = isRoot;
	}

	public boolean isLeaf() {
		return isLeaf;
	}

	public void setLeaf(boolean isLeaf) {
		this.isLeaf = isLeaf;
	}

	public boolean isActive() {
		return isActive;
	}

	public void setActive(boolean isActive) {
		this.isActive = isActive;
	}

	public boolean isHasInterface() {
		return hasInterface;
	}

	public ArrayList<XmiAbstraction> getAbstractions() {
		return abstractions;
	}

	public void setAbstractions(ArrayList<XmiAbstraction> abstraction) {
		this.abstractions = abstraction;
	}

	public void addAbstraction(XmiAbstraction abstraction) {
		this.abstractions.add(abstraction);
	}

	public boolean hasInterface() {
		return hasInterface;
	}

	public void setHasInterface(boolean hasInterface) {
		this.hasInterface = hasInterface;
	}

	public ArrayList<XmiInterface> getInterfaces() {
		return interfaces;
	}

	public void setInterfaces(ArrayList<XmiInterface> xmiInterface) {
		this.interfaces = xmiInterface;
	}

	public ArrayList<XmiTagValue> getTagsValue() {
		return tagsValue;
	}

	public void setTagsValue(ArrayList<XmiTagValue> tagsValue) {
		this.tagsValue = tagsValue;
	}

	public void addTagValue(XmiTagValue tag) {
		this.tagsValue.add(tag);
	}

	public void addTagDefenition(XmiTagDefinition tag) {
		this.tagsDefenition.add(tag);

	}

	public ArrayList<XmiTagDefinition> getTagsDefenition() {
		return tagsDefenition;
	}

	public void setTagsDefenition(ArrayList<XmiTagDefinition> tagsDefenition) {
		this.tagsDefenition = tagsDefenition;
	}

	public void addAssocitesAttributes(XmiAttribute att) {
		this.associatesAttributes.add(att);

	}

	public ArrayList<XmiAttribute> getAssocitesAttributes() {
		return associatesAttributes;
	}

	public void setAssocitesAttributes(
			ArrayList<XmiAttribute> associtesAttributes) {
		this.associatesAttributes = associtesAttributes;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPackageName() {
	
           return this.packageName;
        

        
	}



	public void setPackageName(String packageName) {
		this.packageName = packageName;
	}

   

    

   

   

	public XmiClass getSuperClass() {
		return superClass;
	}

	public void setSuperClass(XmiClass superClass) {
		this.superClass = superClass;
	}

	public XmiGeneralization getGeneralization() {
		return generalization;
	}

	public void setGeneralization(XmiGeneralization generalization) {
		this.generalization = generalization;
	}

	public ArrayList<XmiDataType> getDataTypes() {
		return dataTypes;
	}

	public void setDataTypes(ArrayList<XmiDataType> dataTypes) {
		this.dataTypes = dataTypes;
	}

	public void addDataType(XmiDataType xmiDataType) {
		this.dataTypes.add(xmiDataType);
	}

	public void addAttribute(XmiAttribute xmiAtt) {
		this.attributes.add(xmiAtt);
	}

	public ArrayList<XmiAttribute> getAttributes() {
		return attributes;
	}

	public void setAttributes(ArrayList<XmiAttribute> attributes) {
		this.attributes = attributes;
	}

	public boolean getHasSuperClass() {
		return hasSuperClass;
	}

	public void setHasSuperClass(boolean superClass) {
		this.hasSuperClass = superClass;
	}

    public static ArrayList<String> getPkgName() {




        return pkgName;
    }

    public static void setPkgName(ArrayList<String> pkgName) {
        XmiClass.pkgName = pkgName;
    }

    


}
